#ifndef _CLIENT_H
#define _CLIENT_H
#include<iostream>
#include<string>
#include"message.h" // 消息头文件
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
using namespace std;

class Client
{
private:
    int cfd_;
    sockaddr_in caddr_;
    string username_;
    bool is_login_;

    bool connectToServer(const string& ip, short port);

    // 业务功能函数
    void showMainView(); // 展示主菜单
    void showUserMenu(); // 展示业务菜单

    bool doRegister();  // 注册功能
    bool doLogin();     // 登录功能
    void doQuerry();    // 查询功能
    void doHistory();   // 获取历史记录功能
    bool doQuit();      // 退出功能

public:
    Client(const string &ip, short port);
    ~Client();
    void run(); // 主要的功能运行函数
};

#endif